精选国产av精选一区二区-精品人妻中文字幕区二区三区视频-亚洲国产精品av在线播放-国产精品亚洲综合专区片高清

頂部圖片
022-23715128

聯(lián)系方式

CONTACT
  • 公眾號
    新浪微博
  • 中國 ● 天津

    聯(lián)系地址:天津市西青區(qū)華鼎高科技發(fā)展中心

  • 公司座機(jī):022-23715128

    24小時熱線:15522534786

    聯(lián)系QQ:2085429559

    公司郵箱:gvt@techlego.com

當(dāng)前位置: 首頁 > 新聞資訊 > 行業(yè)新聞 >
新聞資訊NEWS

日期:2025-08-15 13:40 瀏覽次數(shù): 作者:來高科技
基于關(guān)鍵特征提取的零件抓取匹配優(yōu)化方法:從點(diǎn)云中剔除非關(guān)鍵區(qū)域以提升抓取識別準(zhǔn)確率 分享到:
 
 

導(dǎo)言

在工業(yè)自動化生產(chǎn)中,機(jī)械臂對零部件的抓取常面臨零件對稱性強(qiáng)、外形特征單一等挑戰(zhàn)。此類零件往往僅局部具有顯著特征,而大部分區(qū)域特征不明顯。在三維點(diǎn)云匹配過程中,盡管整體幾何誤差較小,但因關(guān)鍵特征區(qū)域未被有效識別,可能導(dǎo)致誤匹配。

為解決該問題,本文提出一種基于特征區(qū)域提取的優(yōu)化策略:通過剔除非關(guān)鍵區(qū)域(如大面積平面)的數(shù)據(jù),保留并強(qiáng)化特征顯著部位,從而提高匹配的準(zhǔn)確性與魯棒性。本方案基于TechLego SDK實(shí)現(xiàn),并通過實(shí)驗(yàn)驗(yàn)證其有效性。

 

實(shí)施步驟

1.目標(biāo)零件分析與模板構(gòu)建

/

TECHLEGO-來高科技

針對需檢測的零件,首先識別其關(guān)鍵特征區(qū)域(如凸臺、孔位、邊緣等),構(gòu)建僅包含顯著特征的模板模型,剔除底面等大面積、低辨識度的結(jié)構(gòu)。

進(jìn)行檢測的零件和零件剔除不關(guān)鍵部位后的模板

2.點(diǎn)云數(shù)據(jù)預(yù)處理

/

TECHLEGO-來高科技

獲取待檢測零件的三維掃描點(diǎn)云數(shù)據(jù),并將其轉(zhuǎn)換至統(tǒng)一的大地坐標(biāo)系。隨后,對點(diǎn)云中的底面等非特征區(qū)域進(jìn)行濾除,保留關(guān)鍵結(jié)構(gòu)信息。

3.特征對齊匹配

/

TECHLEGO-來高科技

調(diào)用TechLego SDK提供的feature_align函數(shù),基于提取的關(guān)鍵特征區(qū)域進(jìn)行點(diǎn)云配準(zhǔn),計(jì)算最優(yōu)匹配位姿。

匹配結(jié)果評估

實(shí)驗(yàn)表明,采用特征提取策略后,正確匹配與錯誤匹配的誤差值差異顯著。經(jīng)多次測試,正確匹配的誤差值均低于0.25mm,而錯誤匹配的誤差值均高于0.5mm,具備良好的區(qū)分度。

實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)

5次正確匹配與5次錯誤匹配實(shí)驗(yàn)進(jìn)行對比多次實(shí)驗(yàn)中其中5組數(shù)據(jù),結(jié)果如下

實(shí)驗(yàn)次數(shù)(序號)

匹配正確時error值(mm)

匹配錯誤時error值(mm)

1

0.21

0.53

2

0.24

0.55

3

0.22

0.53

4

0.21

0.52

5

0.19

0.54

數(shù)據(jù)表明,特征提取后,匹配誤差在正確與錯誤情況下呈現(xiàn)明顯分界,有利于后續(xù)算法進(jìn)行準(zhǔn)確判斷。

結(jié)語

 

 

工業(yè)生產(chǎn)中,零件形態(tài)多樣,特征復(fù)雜度差異顯著。無論是特征過于簡單還是過于復(fù)雜,均可能影響三維識別的準(zhǔn)確性。通過針對性地提取關(guān)鍵特征區(qū)域,并結(jié)合TechLego SDK的高精度匹配能力,可顯著提升識別結(jié)果的可靠性。該方法使正確與錯誤匹配在誤差指標(biāo)上形成明顯區(qū)分,為后續(xù)決策算法提供有力支持,從而有效提高機(jī)械臂抓取的整體成功率。

源代碼

#include"pch.h"

///進(jìn)行一次掃描,轉(zhuǎn)換為大地坐標(biāo)系,并作為參考數(shù)據(jù)

if(!m_client->scan_to_reference())//把基于大地坐標(biāo)系的掃描數(shù)據(jù)放到參考窗口

return;

//刪除底面

//delete_plane(m_gun_PlaneInfo);

bin::vector<techlego::pos6f>plane_points1;

bin::vector_h<techlego::h_point_info>pt_clouds1;

m_client->get_scan_data_by_index(pt_clouds1,0);

for(int i=0;i<pt_clouds1.m_size;i++)

{

bin::vector<double>pt;

techlego::pos6f pos6f;

pt_clouds1[i].get_point_info(pt);

pos6f.m_x=pt[0];

pos6f.m_y=pt[1];

pos6f.m_z=pt[2];

pos6f.m_nx=pt[3];

pos6f.m_ny=pt[4];

pos6f.m_nz=pt[5];

plane_points1.emplace_back(pos6f);

}

//把當(dāng)前點(diǎn)作為平面上的點(diǎn),點(diǎn)的法相作為平面的法向,刪除點(diǎn)云(刪除底面)

plane.filter_points_by_plane(plane_points1,-500,filter_height);

m_client->load_feature_align_data_from_memory(plane_points1,true);

//定義機(jī)器手移動位姿

techlego::pose_3d res;

techlego::pose_3d res1;

double error;

bin::vector<int>inde;

///調(diào)用feature_align

if(!m_client->feature_align(res,error,inde))//將移動數(shù)據(jù)移動到與參考數(shù)據(jù)重合,并得到移動位姿

{

if(filter_height==filter_height_max)

{

BCGPMessageBox(m_hWnd,L"未識別到目標(biāo)!\n開始識別下一層",L"提示",MB_OK|MB_ICONHAND|MB_ICONASTERISK);

filter_height=3;

continue;

}

if(filter_height==filter_height_min)

{

BCGPMessageBox(m_hWnd,L"未識別到目標(biāo)!停止掃描",L"提示",MB_OK|MB_ICONHAND|MB_ICONASTERISK);

break;

}

}

 
 

官網(wǎng)視頻號·點(diǎn)擊視頻·關(guān)注我們

 





  • 上一篇:利用C++與Techlego庫實(shí)現(xiàn)點(diǎn)云數(shù)據(jù)中底面自動識別與刪除技術(shù)
  • 下一篇:沒有了
  • 相關(guān)推薦 NEWS More>